图的领接矩阵和深度遍历





#include"fstream"
#include"iostream"
using namespace std;
const int MaxInt = 32767;//表示极大值
const int MVNum = 100;//最大顶点数
typedef int Status;
bool visited[MVNum];
int i, j;
typedef struct {
<span style="white-space:pre">	</span>char vexs[MVNum]; //创建顶点表
<span style="white-space:pre">	</span>int arcs[MVNum][MVNum];//领接矩阵
<span style="white-space:pre">	</span>int vexnum, arcnum; //图的当前点数和边数


}AMGraph;
int LocateVex(AMGraph G, char v)//图的基本操作,寻找V的位置
{
<span style="white-space:pre">	</span>int i = 0;
<span style="white-space:pre">	</span>while (i < G.vexnum && v != G.vexs[i])
<span style="white-space:pre">		</span>i++;
<span style="white-space:pre">	</span>return i;
}
int CreateUDN(AMGraph &G) {
<span style="white-space:pre">	</span>char v1, v2; int w;
<span style="white-space:pre">	</span>fstream in;
<span style="white-space:pre">	</span>in.open("data.txt", ios::in);
<span style="white-space:pre">	</span>in &g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
邻接矩阵是一种表示的方法,其中矩阵的行和列分别表示中的节点,矩阵中的值表示两个节点之间是否有边。深度优先遍历和广度优先遍历是两种常见的遍历算法。 深度优先遍历(DFS)是一种递归算法,它从的某个节点开始遍历,沿着一条路径直到不能再继续为止,然后回溯到前一个节点,继续遍历下一条路径,直到遍历完整个。下面是使用邻接矩阵表示法进行深度优先遍历的Python代码: ```python def dfs(graph, start, visited): visited[start] = True print(start, end=' ') for i in range(len(graph)): if graph[start][i] == 1 and not visited[i]: dfs(graph, i, visited) # 示例 graph = [[0, 1, 1, 0], [1, 0, 1, 1], [1, 1, 0, 1], [0, 1, 1, 0]] visited = [False] * len(graph) dfs(graph, 0, visited) ``` 广度优先遍历(BFS)是一种迭代算法,它从的某个节点开始遍历,先访问它的所有邻居节点,然后再依次访问邻居节点的邻居节点,直到遍历完整个。下面是使用邻接矩阵表示法进行广度优先遍历的Python代码: ```python from collections import deque def bfs(graph, start, visited): queue = deque([start]) visited[start] = True while queue: node = queue.popleft() print(node, end=' ') for i in range(len(graph)): if graph[node][i] == 1 and not visited[i]: queue.append(i) visited[i] = True # 示例 graph = [[0,1, 1, 0], [1, 0, 1, 1], [1, 1, 0, 1], [0, 1, 1, 0]] visited = [False] * len(graph) bfs(graph, 0, visited) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值